#include <iostream>
#include <vector>
using namespace std;

int main()
{
	int n;
	cin>>n;
	vector<int> arr(n+1);
	
	for(int i=1;i<=n;i++)
		cin>>arr[i];
		
	vector<int> f(n+1),b(n+1);
	
	for(int i=1;i<=n;i++)
	{
		f[i]=1;
		for(int j=1;j<i;j++)
		{
			if(arr[i]>arr[j])
			{
				f[i]=max(f[i],f[j]+1);
			}
		}
	}
	
	for(int i=n;i>=1;i--)
	{
		b[i]=1;
		for(int j=n;j>i;j--)
		{
			if(arr[i]>arr[j])
			{
				b[i]=max(b[i],b[j]+1);
			}
		}
	}
	int ret=0;
	for(int i=1;i<=n;i++)
	{
		ret=max(ret,f[i]+b[i]-1);
	}
	cout<<ret<<endl;
	return 0;
}
